#include <pthread.h>
#include <iostream>
#include <semaphore.h>
using namespace std;

const int defaultnum = 1;

class Sem
{
public:
    Sem(int num = defaultnum)
    {
        sem_init(&_sem, 0, defaultnum);
    }

    void P()//信号量值减1
    {
        int n = sem_wait(&_sem);
    }

    void V()//信号量值加1
    {
        int n = sem_post(&_sem);
    }

    ~Sem()
    {
        sem_destroy(&_sem);
    }
private:
    sem_t _sem;
};